﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ErickOrlando.Utilidades.Mail
{
    /// <summary>
    /// Clase que contiene Información sobre el Envío de Correos
    /// </summary>
    /// <remarks>Erick Orlando © 2012</remarks>
    [Serializable()]
    public class ContenidoMail : IDisposable
    {
        /// <summary>
        /// Ruta del archivo a adjuntar
        /// </summary>
        public string Attachment { get; set; }
        /// <summary>
        /// Inicializa una nueva instancia de ContenidoMail
        /// </summary>
        public ContenidoMail()
        {
            ListaDestinatarios = new List<string>();
            ListaDestinatariosCC = new List<string>();
            ListaDestinatariosBCC = new List<string>();
            CuerpoMensaje = string.Empty;
            Html = false;
            Asunto = string.Empty;
            ArrayValores = new string[] {};
        }
        /// <summary>
        /// Lista de Destinatarios que irán en el Correo Electrónico
        /// </summary>
        public List<string> ListaDestinatarios { get; private set; }
        /// <summary>
        /// Lista de Destinarios con Copia  que irán en el Correo Electrónico
        /// </summary>
        public List<string> ListaDestinatariosCC { get; private set; }
        /// <summary>
        /// Lista de Destinatarios con Copia Oculta que irán en el Correo Electrónico
        /// </summary>
        public List<string> ListaDestinatariosBCC { get; private set; }
        /// <summary>
        /// Cuerpo del Mensaje que irá en el Correo Electrónico.
        /// Puede ser un HTML pero sin Estilos CSS y sin JavaScript
        ///</summary>
        public string CuerpoMensaje { get; set; }
        /// <summary>
        /// Indica si el Cuerpo del Mensaje contiene HTML
        /// </summary>
        public bool Html { get; set; }
        /// <summary>
        /// Asunto del Mensaje
        /// </summary>
        public string Asunto { get; set; }
        /// <summary>
        /// Array de Valores que se reemplazarán si el Cuerpo del Mensaje
        /// contiene parámetros de Cadena.
        /// </summary>
        public string[] ArrayValores { get; set; }

        #region IDisposable Support

        private bool disposedValue;
        /// <summary>
        /// Elimina los recursos no utilizados
        /// </summary>
        /// <param name="disposing">Dispose</param>
        protected virtual void Dispose(bool disposing)
        {
            if (!this.disposedValue)
            {
                if (disposing)
                {
                }
            }
            this.disposedValue = true;
        }

        void IDisposable.Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }

        #endregion

    }
}
